The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
.cvsignore 11
Build.PL 02
Changes 019
MANIFEST 01
META.json 083
META.yml 910
Makefile.PL 11
README 11
SIGNATURE 3031
lib/Crypt/Eksblowfish/Bcrypt.pm 22
lib/Crypt/Eksblowfish/Blowfish.pm 22
lib/Crypt/Eksblowfish/Family.pm 34
lib/Crypt/Eksblowfish/Subkeyed.pm 22
lib/Crypt/Eksblowfish/Uklblowfish.pm 22
lib/Crypt/Eksblowfish.pm 22
lib/Crypt/Eksblowfish.xs 315
t/base64.t 05
t/bcrypt.t 05
t/bcrypt_hash.t 05
t/blowfish.t 05
t/eksblowfish.t 05
t/family.t 05
t/pod_cvg.t 05
t/pod_syn.t 05
t/subkey.t 05
t/uklblowfish.t 05
t/utf8.t 05
27 files changed (This is a version diff) 58233
@@ -1,4 +1,4 @@
 Build Makefile
 _build blib
-META.yml Makefile.PL SIGNATURE
+META.json META.yml MYMETA.json MYMETA.yml Makefile.PL SIGNATURE
 Crypt-Eksblowfish-*
@@ -14,6 +14,8 @@ Module::Build->new(
 	configure_requires => {
 		"Module::Build" => 0,
 		"perl" => "5.006",
+		"strict" => 0,
+		"warnings" => 0,
 	},
 	build_requires => {
 		"ExtUtils::CBuilder" => "0.15",
@@ -1,3 +1,22 @@
+version 0.009; 2011-04-28
+
+  * in XS, use PERL_NO_GET_CONTEXT for efficiency
+
+  * in XS, declare "PROTOTYPES: DISABLE" to prevent automatic generation
+    of unintended prototypes
+
+  * jump through hoops to avoid compiler warnings
+
+  * use full stricture in test suite
+
+  * in Build.PL, complete declaration of configure-time requirements
+
+  * slightly reformat some Perl and C code to avoid exceeding 80 columns
+
+  * include META.json in distribution
+
+  * add MYMETA.json and MYMETA.yml to .cvsignore
+
 version 0.008; 2010-03-11
 
   * bugfix: avoid memory leak when returning block to Perl space
@@ -2,6 +2,7 @@
 Build.PL
 Changes
 MANIFEST
+META.json
 META.yml
 Makefile.PL
 README
@@ -0,0 +1,83 @@
+{
+   "abstract" : "the Eksblowfish block cipher",
+   "author" : [
+      "Solar Designer (solar at openwall.com)",
+      "Andrew Main (Zefram) <zefram@fysh.org>"
+   ],
+   "dynamic_config" : 0,
+   "generated_by" : "Module::Build version 0.38, CPAN::Meta::Converter version 2.110580",
+   "license" : [
+      "perl_5"
+   ],
+   "meta-spec" : {
+      "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+      "version" : "2"
+   },
+   "name" : "Crypt-Eksblowfish",
+   "prereqs" : {
+      "build" : {
+         "requires" : {
+            "ExtUtils::CBuilder" : "0.15",
+            "Module::Build" : 0,
+            "Test::More" : 0,
+            "perl" : "5.006",
+            "strict" : 0,
+            "warnings" : 0
+         }
+      },
+      "configure" : {
+         "requires" : {
+            "Module::Build" : 0,
+            "perl" : "5.006",
+            "strict" : 0,
+            "warnings" : 0
+         }
+      },
+      "runtime" : {
+         "requires" : {
+            "Carp" : 0,
+            "Class::Mix" : "0.001",
+            "Exporter" : 0,
+            "MIME::Base64" : "2.21",
+            "XSLoader" : 0,
+            "parent" : 0,
+            "perl" : "5.006",
+            "strict" : 0,
+            "warnings" : 0
+         }
+      }
+   },
+   "provides" : {
+      "Crypt::Eksblowfish" : {
+         "file" : "lib/Crypt/Eksblowfish.pm",
+         "version" : "0.009"
+      },
+      "Crypt::Eksblowfish::Bcrypt" : {
+         "file" : "lib/Crypt/Eksblowfish/Bcrypt.pm",
+         "version" : "0.009"
+      },
+      "Crypt::Eksblowfish::Blowfish" : {
+         "file" : "lib/Crypt/Eksblowfish/Blowfish.pm",
+         "version" : "0.009"
+      },
+      "Crypt::Eksblowfish::Family" : {
+         "file" : "lib/Crypt/Eksblowfish/Family.pm",
+         "version" : "0.009"
+      },
+      "Crypt::Eksblowfish::Subkeyed" : {
+         "file" : "lib/Crypt/Eksblowfish/Subkeyed.pm",
+         "version" : "0.009"
+      },
+      "Crypt::Eksblowfish::Uklblowfish" : {
+         "file" : "lib/Crypt/Eksblowfish/Uklblowfish.pm",
+         "version" : "0.009"
+      }
+   },
+   "release_status" : "stable",
+   "resources" : {
+      "license" : [
+         "http://dev.perl.org/licenses/"
+      ]
+   },
+   "version" : "0.009"
+}
@@ -13,9 +13,10 @@ build_requires:
 configure_requires:
   Module::Build: 0
   perl: 5.006
-distribution_type: module
+  strict: 0
+  warnings: 0
 dynamic_config: 0
-generated_by: 'Module::Build version 0.3603'
+generated_by: 'Module::Build version 0.38, CPAN::Meta::Converter version 2.110580'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -24,22 +25,22 @@ name: Crypt-Eksblowfish
 provides:
   Crypt::Eksblowfish:
     file: lib/Crypt/Eksblowfish.pm
-    version: 0.008
+    version: 0.009
   Crypt::Eksblowfish::Bcrypt:
     file: lib/Crypt/Eksblowfish/Bcrypt.pm
-    version: 0.008
+    version: 0.009
   Crypt::Eksblowfish::Blowfish:
     file: lib/Crypt/Eksblowfish/Blowfish.pm
-    version: 0.008
+    version: 0.009
   Crypt::Eksblowfish::Family:
     file: lib/Crypt/Eksblowfish/Family.pm
-    version: 0.008
+    version: 0.009
   Crypt::Eksblowfish::Subkeyed:
     file: lib/Crypt/Eksblowfish/Subkeyed.pm
-    version: 0.008
+    version: 0.009
   Crypt::Eksblowfish::Uklblowfish:
     file: lib/Crypt/Eksblowfish/Uklblowfish.pm
-    version: 0.008
+    version: 0.009
 requires:
   Carp: 0
   Class::Mix: 0.001
@@ -52,4 +53,4 @@ requires:
   warnings: 0
 resources:
   license: http://dev.perl.org/licenses/
-version: 0.008
+version: 0.009
@@ -1,4 +1,4 @@
-# Note: this file was auto-generated by Module::Build::Compat version 0.3603
+# Note: this file was auto-generated by Module::Build::Compat version 0.3800
 require 5.006;
 
     unless (eval "use Module::Build::Compat 0.02; 1" ) {
@@ -36,7 +36,7 @@ Modifications and Perl interface by Andrew Main (Zefram)
 
 COPYRIGHT
 
-Copyright (C) 2006, 2007, 2008, 2009, 2010
+Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
 Andrew Main (Zefram) <zefram@fysh.org>
 
 The original Eksblowfish code (in the form of crypt()) from which
@@ -1,5 +1,5 @@
 This file contains message digests of all files listed in MANIFEST,
-signed via the Module::Signature module, version 0.61.
+signed via the Module::Signature module, version 0.66.
 
 To verify the content in this distribution, first make sure you have
 Module::Signature installed, then type:
@@ -14,37 +14,38 @@ not run its Makefile.PL or Build.PL.
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-SHA1 0bc3351e37b3dbc594fe80cd16f49aee2a6b17b6 .cvsignore
-SHA1 7993422c730b3cbd66e75bf0c7ab08b1043b8eb6 Build.PL
-SHA1 a07be5655476c243f1f100b02a843d8eee359fb6 Changes
-SHA1 84bd916d8a2c3f833fa36df262ef1033a805f606 MANIFEST
-SHA1 63b6e67d8428a570adc8dfe6d031d8d429237653 META.yml
-SHA1 f8469f20cf26bafaffabb905631b945ab0f81289 Makefile.PL
-SHA1 ebbf0cbaf9cac56b0edac0775c3bf13e3959e974 README
+SHA1 1056e548e8fc802cf9e547d3a1ac86708c90f132 .cvsignore
+SHA1 e655960831df6355f525b51095559d95045da7b2 Build.PL
+SHA1 55c49c1b1043d82dd7784a8cdb0b2ee08d5068b4 Changes
+SHA1 7aed7cddf47ea2ad0d3f355851344a231d1f8c01 MANIFEST
+SHA1 7e2d0343f5cc744c28e988bbcde680b5a419afb4 META.json
+SHA1 7cf6de35cd0ee6241aa0a1b4a18df50859703f68 META.yml
+SHA1 a4df8e97ccd390a42212af5a9f4d0986c85e7a5f Makefile.PL
+SHA1 5cfbb041c39258e6515e4df053f0e0e697cbd9bb README
 SHA1 1008eae74fc0ed04ffe262cf934bbe7ef3b56c18 lib/Crypt/.cvsignore
-SHA1 6813ff7ddc5b2bc24bf269fb1c391aa7794fb177 lib/Crypt/Eksblowfish.pm
-SHA1 665e5d44550cdd82a87b0d9c5d2c18bc18c9eece lib/Crypt/Eksblowfish.xs
-SHA1 beaf93583713b76d341436973ac679981717bbc9 lib/Crypt/Eksblowfish/Bcrypt.pm
-SHA1 f2929098a5a8e60ad9034cac5c9ae5b859cbce1b lib/Crypt/Eksblowfish/Blowfish.pm
-SHA1 0f024a713d9fd2e57ee691dba837314398b03782 lib/Crypt/Eksblowfish/Family.pm
-SHA1 9aea04b43961955bb23a2061e5e0d50cabdf37f0 lib/Crypt/Eksblowfish/Subkeyed.pm
-SHA1 686ebeb4b1d891f48cee4623953ce56defa93ea5 lib/Crypt/Eksblowfish/Uklblowfish.pm
-SHA1 4ad6608276c06b7df4a493bafa06795ecbec7f91 t/base64.t
-SHA1 22879b7c32306921b426a16eb38ee783c28b49db t/bcrypt.t
-SHA1 ab642bf302d854ce2d3dd6b2ac157c048958d924 t/bcrypt_hash.t
-SHA1 78281a46f37b2d462a6466fbcd2a8c286244d92c t/blowfish.t
-SHA1 295d7ffc486abcafa5322371fcdf238b1a1d3ead t/eksblowfish.t
-SHA1 64c6c0c37a7c193939c8aa6ed4276218dc77a6a0 t/family.t
-SHA1 0e141eecf3ca4903ef38d9413b5403a9ddb0392f t/pod_cvg.t
-SHA1 74a957cd8b93f25672ecc6aa578a671d084dd343 t/pod_syn.t
-SHA1 8ef086a24068f32855e337e6a9d493135785f883 t/subkey.t
-SHA1 7892bb05837bab222dbf3ba93d4fb076dc5ad586 t/uklblowfish.t
-SHA1 b26fdaaf35efc7d7de03610e1d0c72f18b9c8137 t/utf8.t
+SHA1 816c7b280b5756b9e4a91b53542218d90ae7bc4a lib/Crypt/Eksblowfish.pm
+SHA1 30385869643dbf1ae13cca68d242bbb26e507f7b lib/Crypt/Eksblowfish.xs
+SHA1 1e472a5263e35591c63e4924a1cd89782d6b24ce lib/Crypt/Eksblowfish/Bcrypt.pm
+SHA1 42896ef4a196e01a58b27bd7e0fc6b00bbe3218f lib/Crypt/Eksblowfish/Blowfish.pm
+SHA1 e5dc5f1779ab8852a9132d38d07ee047d9d68ef7 lib/Crypt/Eksblowfish/Family.pm
+SHA1 8ce83e9805152c826e23e00f0221728c68642948 lib/Crypt/Eksblowfish/Subkeyed.pm
+SHA1 37ea8bbe887befa6b2682fa88bf15a2dea6252b6 lib/Crypt/Eksblowfish/Uklblowfish.pm
+SHA1 fc61296b16be35687dfe8dc25868927ecbda5186 t/base64.t
+SHA1 2982289d98db3f0328f31e3a5e1ad49d3344fbff t/bcrypt.t
+SHA1 965c1c785b1e5c3ce0fa0d54cd65af72813e396d t/bcrypt_hash.t
+SHA1 85e1ac18310b6a0fa01b5d78dd4ead89c765fbf0 t/blowfish.t
+SHA1 a23c99f053c821c932513c8c9ef97da4cec4df28 t/eksblowfish.t
+SHA1 23077a7069fcb22dee7a8bde5f7de29bfa86e839 t/family.t
+SHA1 904d9a4f76525e2303e4b0c168c68230f223c8de t/pod_cvg.t
+SHA1 65c75abdef6f01a5d1588a307f2ddfe2333dc961 t/pod_syn.t
+SHA1 e609e4d8ea71964f400a8db6e3a02e9792c73677 t/subkey.t
+SHA1 e761a97727f8bf7238e5d8553f78575f8cc6d364 t/uklblowfish.t
+SHA1 7b673ca24bf62de6e7550aa7b19ed92e96dc0a78 t/utf8.t
 SHA1 7ad478ba2f46a8291fd098976ea1cebc39db5971 typemap
 -----BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.9 (GNU/Linux)
+Version: GnuPG v1.4.10 (GNU/Linux)
 
-iEYEARECAAYFAkuZRmUACgkQOV9mt2VyAVEreQCfQuFrg4r4epQt/3tUtSEiOknn
-Fr8AnjCgz/iMTMgDZoAi3BhB4Vl9C6XY
-=L1Rz
+iEYEARECAAYFAk24d8IACgkQOV9mt2VyAVFYHQCdEsi0g7BAoO0rXXz93sZL2qfy
+Vo4AnjrlDqWl1g4QL40L+7tM/aPHe7sY
+=mEj6
 -----END PGP SIGNATURE-----
@@ -42,7 +42,7 @@ use Carp qw(croak);
 use Crypt::Eksblowfish 0.005;
 use MIME::Base64 2.21 qw(encode_base64 decode_base64);
 
-our $VERSION = "0.008";
+our $VERSION = "0.009";
 
 use parent "Exporter";
 our @EXPORT_OK = qw(bcrypt_hash en_base64 de_base64 bcrypt);
@@ -177,7 +177,7 @@ Andrew Main (Zefram) <zefram@fysh.org>
 
 =head1 COPYRIGHT
 
-Copyright (C) 2006, 2007, 2008, 2009, 2010
+Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
 Andrew Main (Zefram) <zefram@fysh.org>
 
 =head1 LICENSE
@@ -43,7 +43,7 @@ package Crypt::Eksblowfish::Blowfish;
 use warnings;
 use strict;
 
-our $VERSION = "0.008";
+our $VERSION = "0.009";
 
 use parent "Crypt::Eksblowfish::Subkeyed";
 
@@ -140,7 +140,7 @@ Modifications and Perl interface by Andrew Main (Zefram)
 
 =head1 COPYRIGHT
 
-Copyright (C) 2006, 2007, 2008, 2009, 2010
+Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
 Andrew Main (Zefram) <zefram@fysh.org>
 
 The original Eksblowfish code (in the form of crypt()) from which
@@ -75,7 +75,7 @@ use Carp qw(croak);
 use Crypt::Eksblowfish 0.005;
 use Class::Mix 0.001 qw(genpkg);
 
-our $VERSION = "0.008";
+our $VERSION = "0.009";
 
 =head1 CONSTRUCTOR
 
@@ -185,7 +185,8 @@ sub as_class {
 		my $pkg = genpkg(__PACKAGE__."::");
 		no strict "refs";
 		@{"${pkg}::ISA"} = (ref($self));
-		*{"${pkg}::new_family"} = sub { croak $_[0]."->new_family called" };
+		*{"${pkg}::new_family"} =
+			sub { croak $_[0]."->new_family called" };
 		*{"${pkg}::cost"} = sub { $self->cost };
 		*{"${pkg}::salt"} = sub { $self->salt };
 		*{"${pkg}::new"} = sub { shift; $self->new(@_) };
@@ -207,7 +208,7 @@ Andrew Main (Zefram) <zefram@fysh.org>
 
 =head1 COPYRIGHT
 
-Copyright (C) 2006, 2007, 2008, 2009, 2010
+Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
 Andrew Main (Zefram) <zefram@fysh.org>
 
 =head1 LICENSE
@@ -72,7 +72,7 @@ use strict;
 
 use XSLoader;
 
-our $VERSION = "0.008";
+our $VERSION = "0.009";
 
 XSLoader::load("Crypt::Eksblowfish", $VERSION);
 
@@ -179,7 +179,7 @@ Modifications and Perl interface by Andrew Main (Zefram)
 
 =head1 COPYRIGHT
 
-Copyright (C) 2006, 2007, 2008, 2009, 2010
+Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
 Andrew Main (Zefram) <zefram@fysh.org>
 
 The original Eksblowfish code (in the form of crypt()) from which
@@ -74,7 +74,7 @@ package Crypt::Eksblowfish::Uklblowfish;
 use warnings;
 use strict;
 
-our $VERSION = "0.008";
+our $VERSION = "0.009";
 
 use parent "Crypt::Eksblowfish::Subkeyed";
 
@@ -164,7 +164,7 @@ Modifications and Perl interface by Andrew Main (Zefram)
 
 =head1 COPYRIGHT
 
-Copyright (C) 2006, 2007, 2008, 2009, 2010
+Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
 Andrew Main (Zefram) <zefram@fysh.org>
 
 The original Eksblowfish code (in the form of crypt()) from which
@@ -47,7 +47,7 @@ package Crypt::Eksblowfish;
 use warnings;
 use strict;
 
-our $VERSION = "0.008";
+our $VERSION = "0.009";
 
 use parent "Crypt::Eksblowfish::Subkeyed";
 
@@ -140,7 +140,7 @@ Modifications and Perl interface by Andrew Main (Zefram)
 
 =head1 COPYRIGHT
 
-Copyright (C) 2006, 2007, 2008, 2009, 2010
+Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
 Andrew Main (Zefram) <zefram@fysh.org>
 
 The original Eksblowfish code (in the form of crypt()) from which
@@ -1,3 +1,4 @@
+#define PERL_NO_GET_CONTEXT 1
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
@@ -348,7 +349,8 @@ static const BF_key_schedule BF_init_state = {
 	}
 };
 
-#if defined(__i386__) || defined(__x86_64__) || defined(__alpha__) || defined(__hppa__)
+#if defined(__i386__) || defined(__x86_64__) || defined(__alpha__) || \
+	defined(__hppa__)
 /* Architectures which can shift addresses left by 2 bits with no extra cost */
 #define BF_ROUND(L, R, N) \
 	tmp1 = L & 0xFF; \
@@ -562,8 +564,10 @@ static void setup_blowfish_ks(const unsigned char *key, size_t keylen,
 	munge_subkeys(ks);
 }
 
-static void sv_to_octets(U8 **octets_p, STRLEN *len_p, bool *must_free_p,
-	SV *sv)
+#define sv_to_octets(octets_p, len_p, must_free_p, sv) \
+	THX_sv_to_octets(aTHX_ octets_p, len_p, must_free_p, sv)
+static void THX_sv_to_octets(pTHX_ U8 **octets_p, STRLEN *len_p,
+	bool *must_free_p, SV *sv)
 {
 	U8 *in_str = (U8*)SvPV(sv, *len_p);
 	bool is_utf8 = !!SvUTF8(sv);
@@ -580,9 +584,12 @@ typedef BF_key_schedule *Crypt__Eksblowfish__Uklblowfish;
 
 MODULE = Crypt::Eksblowfish PACKAGE = Crypt::Eksblowfish::Subkeyed
 
+PROTOTYPES: DISABLE
+
 int
 blocksize(SV *invocant)
 CODE:
+	PERL_UNUSED_VAR(invocant);
 	RETVAL = 8;
 OUTPUT:
 	RETVAL
@@ -668,6 +675,7 @@ PREINIT:
 	AV *parray, *sboxes;
 	int i, j;
 CODE:
+	PERL_UNUSED_VAR(classname);
 	if(!SvROK(parray_sv))
 		croak("P-array argument must be reference");
 	parray = (AV *)SvRV(parray_sv);
@@ -720,6 +728,7 @@ OUTPUT:
 Crypt::Eksblowfish::Subkeyed
 new_initial(SV *classname)
 CODE:
+	PERL_UNUSED_VAR(classname);
 	Newx(RETVAL, 1, BF_key_schedule);
 	memcpy(RETVAL, &BF_init_state, sizeof(BF_init_state));
 OUTPUT:
@@ -735,6 +744,7 @@ PREINIT:
 	bool salt_tofree, key_tofree;
 	U8 salt[16];
 CODE:
+	PERL_UNUSED_VAR(classname);
 	if(cost > 31)
 		croak("cost parameters greater than 31 are not supported yet");
 	sv_to_octets(&salt_octets, &salt_len, &salt_tofree, salt_sv);
@@ -765,6 +775,7 @@ PREINIT:
 	U8 *key_octets;
 	bool key_tofree;
 CODE:
+	PERL_UNUSED_VAR(classname);
 	sv_to_octets(&key_octets, &key_len, &key_tofree, key_sv);
 	if(key_len < 4 || key_len > 56) {
 		if(key_tofree) Safefree(key_octets);
@@ -785,6 +796,7 @@ PREINIT:
 	U8 *key_octets;
 	bool key_tofree;
 CODE:
+	PERL_UNUSED_VAR(classname);
 	sv_to_octets(&key_octets, &key_len, &key_tofree, key_sv);
 	if(key_len < 1 || key_len > (BF_N + 2) * 4) {
 		if(key_tofree) Safefree(key_octets);
@@ -1,3 +1,6 @@
+use warnings;
+use strict;
+
 use Test::More tests => 49;
 
 BEGIN { use_ok "Crypt::Eksblowfish::Bcrypt", qw(en_base64 de_base64); }
@@ -12,6 +15,8 @@ while(<DATA>) {
 	is de_base64($base64), $bytes;
 }
 
+1;
+
 __DATA__
 25 HO
 6b11 YvC
@@ -1,3 +1,6 @@
+use warnings;
+use strict;
+
 use Test::More tests => 69;
 
 BEGIN { use_ok "Crypt::Eksblowfish::Bcrypt", qw(bcrypt); }
@@ -11,6 +14,8 @@ while(<DATA>) {
 	isnt bcrypt($_, $settings), $settings.$hash foreach (@wrong_passwords);
 }
 
+1;
+
 __DATA__
 $2$05$CCCCCCCCCCCCCCCCCCCCC. 7uG0VCzI2bS7j6ymqJi9CdcdxiRTWNy
 $2$07$aba.............kC2SI. cbHK1ODT5F77pYUqRNV63bd/IDxsTXq 0
@@ -1,3 +1,6 @@
+use warnings;
+use strict;
+
 use Test::More tests => 3;
 
 BEGIN { use_ok "Crypt::Eksblowfish::Bcrypt", qw(bcrypt_hash); }
@@ -9,3 +12,5 @@ is bcrypt_hash({ key_nul => 0, cost => 5, salt => "abcdefghijklmnop" },
 is bcrypt_hash({ key_nul => 1, cost => 6, salt => "ABCDEFGHIJKLMNOP" },
 	       "Libelar! Timmah!"),
    pack("H*", "2b7453cbc43bc27cb59c1a1a2ce520d79557f7a1a17b9b");
+
+1;
@@ -1,3 +1,6 @@
+use warnings;
+use strict;
+
 use Test::More tests => 13 + 6*59;
 
 BEGIN { use_ok "Crypt::Eksblowfish::Blowfish"; }
@@ -29,6 +32,8 @@ while(<DATA>) {
 	is !!$cipher->is_weak, $key eq pack("H*", "88b824049795f021");
 }
 
+1;
+
 __DATA__
 0000000000000000 4ef997456198dd78 0000000000000000
 ffffffffffffffff 51866fd5b85ecb8a ffffffffffffffff
@@ -1,3 +1,6 @@
+use warnings;
+use strict;
+
 use Test::More tests => 12 + 6*11;
 
 BEGIN { use_ok "Crypt::Eksblowfish"; }
@@ -29,6 +32,8 @@ while(<DATA>) {
 	is !!$cipher->is_weak, $key eq pack("H*", "67df71d0acdcbef5");
 }
 
+1;
+
 __DATA__
 0 77b5a8e66bf437f3d03cc6b4cdc7d429 5bb0131eefeb17f7 3f6fdaddcd605c01 13ffc413d7ed649a8551
 1 cfd2fe88ead6a5a8dca9523889081f39 ea936213788e916d 0999967ad37fcca1 af5d
@@ -1,3 +1,6 @@
+use warnings;
+use strict;
+
 use Test::More tests => 2 + 26*10;
 
 BEGIN { use_ok "Crypt::Eksblowfish::Family"; }
@@ -42,6 +45,8 @@ while(<DATA>) {
 	is $pkg->as_class, $pkg;
 }
 
+1;
+
 __DATA__
 0 77b5a8e66bf437f3d03cc6b4cdc7d429 5bb0131eefeb17f7 3f6fdaddcd605c01 13ffc413d7ed649a8551
 1 cfd2fe88ead6a5a8dca9523889081f39 ea936213788e916d 0999967ad37fcca1 af5d
@@ -1,4 +1,9 @@
+use warnings;
+use strict;
+
 use Test::More;
 plan skip_all => "Test::Pod::Coverage not available"
 	unless eval "use Test::Pod::Coverage; 1";
 Test::Pod::Coverage::all_pod_coverage_ok();
+
+1;
@@ -1,3 +1,8 @@
+use warnings;
+use strict;
+
 use Test::More;
 plan skip_all => "Test::Pod not available" unless eval "use Test::Pod 1.00; 1";
 Test::Pod::all_pod_files_ok();
+
+1;
@@ -1,3 +1,6 @@
+use warnings;
+use strict;
+
 use Test::More tests => 42 + 6*10;
 
 BEGIN { use_ok "Crypt::Eksblowfish::Subkeyed"; }
@@ -77,6 +80,8 @@ while(<DATA>) {
 	is $tcipher->decrypt($tct), $pt;
 }
 
+1;
+
 __DATA__
 c2e05cec152b7f84 e7ae62039464d1a3 95360a60c9d8ae55
 8f2a4b8beb786d34 b268b3c6cd763b9b 1cbfcb33912e6aad
@@ -1,3 +1,6 @@
+use warnings;
+use strict;
+
 use Test::More tests => 10 + 6*61;
 
 BEGIN { use_ok "Crypt::Eksblowfish::Uklblowfish"; }
@@ -26,6 +29,8 @@ while(<DATA>) {
 	is !!$cipher->is_weak, $key eq pack("H*", "88b824049795f021");
 }
 
+1;
+
 __DATA__
 0000000000000000 4ef997456198dd78 0000000000000000
 ffffffffffffffff 51866fd5b85ecb8a ffffffffffffffff
@@ -1,3 +1,6 @@
+use warnings;
+use strict;
+
 use Test::More tests => 8;
 
 BEGIN { use_ok "Crypt::Eksblowfish"; }
@@ -43,3 +46,5 @@ SKIP: {
 	is $cipher->encrypt($tblk), $cipher->encrypt($ublk);
 	is $cipher->decrypt($tblk), $cipher->decrypt($ublk);
 }
+
+1;